/**
 * 角色管理相关数据类型的定义
 */

/**
 * 通用返回数据类型
 */
export interface ResponseData {
  code: number
  message: string
  ok: boolean
}

/**
 * 角色数据类型
 */
export interface RoleData {
  id?: number | string
  createTime?: string
  updateTime?: string
  roleName?: string
  remark?: string
}

/**
 * 角色列表数据类型
 */
export type Records = RoleData[]

/**
 * 获取角色列表返回的数据类型
 */
export interface RoleListResponseData extends ResponseData {
  data: {
    records: Records
    total: number
    size: number
    current: number
    pages: number
  }
}

/**
 * 角色权限的数据类型
 */
export interface RolePermissionData {
  id?: number | string
  createTime?: string
  updateTime?: string
  pid?: number | string
  name?: string
  code?: string
  toCode?: string
  type?: number | string
  status?: number | string | null
  level?: number | string
  children?: PermissionList
  select?: boolean
}

/**
 * 角色权限列表的数据类型
 */
export type PermissionList = RolePermissionData[]

/**
 * 获取角色权限列表返回的数据类型
 */
export interface RolePermissionResponseData extends ResponseData {
  data: PermissionList
}
